﻿/*********************************************************************
 *
 *                             NOTICE
 *               COPYRIGHT (c) 2012 Panoscopix Software, Inc.
 *                UNPUBLISHED - ALL RIGHTS RESERVED
 * 
 *      This program is confidential, proprietary, and a trade
 *   secret of Panoscopix Software, Inc. The receipt or possession of
 *     this program does not convey any rights to reproduce or
 *      disclose its contents, or to manufacture, use, or sell
 *       anything that it may describe, in whole or in part, 
 *   without the specific written consent of Panoscopix Software, Inc.
 *
 * Registration Interface for the Prototype Factory (for Command).
 * 
 *******************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FileSystem
{
    interface ICommandPrototypeRegistry
    {
        /// <summary>
        /// Registers the supplied command under the supplied name.
        /// </summary>
        /// <param name="name">Name to use for create().  Cannot be NULL, empty, or already be used (not in getNames()).</param>
        /// <param name="zombie">Prototypical Command to be used for creation.  Cannot be NULL.</param>
        void register(String name, ICommandPrototype zombie);

        void describeCommand(ICommandHelpStrategy commandHelpStrategy);
    }
}
